home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 12984 / 12984.xpi / chrome / VideoDownloaderToolbar.jar / content / Profile.js < prev    next >
Text File  |  2010-01-29  |  3KB  |  142 lines

  1. if(!com) var com={};
  2. if(!com.VidBar) com.VidBar={};
  3.  
  4. com.VidBar.Profile = function() {
  5.     this.fieldValues = this.cloneDefault();
  6. },
  7.  
  8. com.VidBar.Profile.prototype = {
  9.     pref : Components.classes["@mozilla.org/preferences-service;1"]
  10.         .getService(Components.interfaces.nsIPrefService).getBranch("vidbar."),
  11.         
  12.     defaultFieldValues : {
  13.         "firstname" : "",
  14.         "middlename" : "",
  15.         "lastname" : "",
  16.         "email" : "",
  17.         "company" : "",
  18.         "address1" : "",
  19.         "address2" : "",
  20.         "city" : "",
  21.         "state" : "",
  22.         "zip" : "",
  23.         "country" : "",
  24.         "phone" : "",
  25.         "fax" : ""
  26.     },
  27.     
  28.     fieldValues : null,
  29.     
  30.     load : function() {
  31.         var v = null;
  32.         try{
  33.             v = this.pref.getCharPref("profile");
  34.         }catch(e){
  35.             v = null;
  36.         }
  37.         if(!v){
  38.             this.fieldValues = this.cloneDefault();
  39.         }else{
  40.             v = this.DecodeBase64(v);
  41.             if(!v){
  42.                 this.fieldValues = this.cloneDefault();
  43.             }else{
  44.                 this.fieldValues = JSON.parse(v);
  45.             }
  46.         }
  47.     },
  48.     
  49.     save:function() {
  50.         var v = JSON.stringify(this.fieldValues);
  51.         //alert(v);
  52.         v = this.EncodeBase64(v);
  53.         //alert(v);
  54.         this.pref.setCharPref("profile", v);
  55.     },
  56.     
  57.     cloneDefault:function() {
  58.         var v = {}
  59.         for(var i in this.defaultFieldValues){
  60.             v[i] = this.defaultFieldValues[i];
  61.         }
  62.         return v;
  63.     },
  64.     
  65.     Base64KeyStr: "ABCDEFGHIJKLMNOP" + "QRSTUVWXYZabcdef" + "ghijklmnopqrstuv"
  66.             + "wxyz0123456789+/" + "=",
  67.     
  68.     EncodeBase64 : function(input) {
  69.         input = escape(input);
  70.         var output = "";
  71.         var chr1, chr2, chr3 = "";
  72.         var enc1, enc2, enc3, enc4 = "";
  73.         var i = 0;
  74.     
  75.         do {
  76.             chr1 = input.charCodeAt(i++);
  77.             chr2 = input.charCodeAt(i++);
  78.             chr3 = input.charCodeAt(i++);
  79.     
  80.             enc1 = chr1 >> 2;
  81.             enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
  82.             enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
  83.             enc4 = chr3 & 63;
  84.     
  85.             if (isNaN(chr2)) {
  86.                 enc3 = enc4 = 64;
  87.             } else if (isNaN(chr3)) {
  88.                 enc4 = 64;
  89.             }
  90.     
  91.             output = output + this.Base64KeyStr.charAt(enc1) + Base64KeyStr.charAt(enc2)
  92.                     + Base64KeyStr.charAt(enc3) + Base64KeyStr.charAt(enc4);
  93.             chr1 = chr2 = chr3 = "";
  94.             enc1 = enc2 = enc3 = enc4 = "";
  95.         } while (i < input.length);
  96.     
  97.         return output;
  98.     },
  99.     
  100.     DecodeBase64 : function(input) {
  101.         var output = "";
  102.         var chr1, chr2, chr3 = "";
  103.         var enc1, enc2, enc3, enc4 = "";
  104.         var i = 0;
  105.     
  106.         // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
  107.         var base64test = /[^A-Za-z0-9\+\/\=]/g;
  108.         if (base64test.exec(input)) {
  109.             alert("There were invalid base64 characters in the input text.\n"
  110.                     + "Valid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\n"
  111.                     + "Expect errors in decoding.");
  112.         }
  113.         input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
  114.     
  115.         do {
  116.             enc1 = Base64KeyStr.indexOf(input.charAt(i++));
  117.             enc2 = Base64KeyStr.indexOf(input.charAt(i++));
  118.             enc3 = Base64KeyStr.indexOf(input.charAt(i++));
  119.             enc4 = Base64KeyStr.indexOf(input.charAt(i++));
  120.     
  121.             chr1 = (enc1 << 2) | (enc2 >> 4);
  122.             chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
  123.             chr3 = ((enc3 & 3) << 6) | enc4;
  124.     
  125.             output = output + String.fromCharCode(chr1);
  126.     
  127.             if (enc3 != 64) {
  128.                 output = output + String.fromCharCode(chr2);
  129.             }
  130.             if (enc4 != 64) {
  131.                 output = output + String.fromCharCode(chr3);
  132.             }
  133.     
  134.             chr1 = chr2 = chr3 = "";
  135.             enc1 = enc2 = enc3 = enc4 = "";
  136.     
  137.         } while (i < input.length);
  138.     
  139.         return unescape(output);
  140.     }
  141. };
  142.